<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>RequestMapping的用法&请求参数的学习</title>
</head>
<body>
<h1>入门案例的请求处理</h1>
<a href="/sayhello.do">测试</a> <br>
<h1>RequestMapping的用法</h1>
<fieldset>
    <a href="/user/sayhello.do">get测试</a> <br>
    <p>请求方式POST</p>
    <form action="/user/sayhello.do" method="post">
        <input type="submit" value="测试Post请求">
    </form>
    <h4>@RequestMapping可以用在类上面表示处理资源分类，利于后期维护管理。
        需要记住 里面有个属性叫method  可以根据请求方式进行相应的请求处理.
        1:如果设置了method请求方式，其他的请求方式来访问该资源的时候会出现405.
        2：405代表不支持当前的请求方式。不写代表都支持。
        3：请求方式不同，路径相同，会执行不同的方法。
        @GetMapping @PostMapping
    </h4>
</fieldset>
<h1>研究不同类型的请求参数在SpringMVC如何接收</h1>
<fieldset>
    <h4>处理器接收的时候 接收的参数 名字须于传递参数的名字一致！！</h4>
    <a href="/user/getParam1.do?id=1&name=zhangsan">get请求(参数是简单类型)</a>
    <h4>如果不一样怎么处理？有问题，500错误。那么怎么解决
      1:保持一致 要么前面改 要么后面改
      2:都不想改,在接收参数的位置  @RequestParam("uid")
    </h4>
    <a href="/user/getParam1.do?uid=1&name=zhangsan">get请求(参数是简单类型)</a>
    <h4>处理简单参数的接收，需要处理器方法参数名与传递的参数名一致</h4>
</fieldset>

<h2>以下是下午内容</h2>
<fieldset>
    <h4>如果使用post请求传参，参数是中文会不会出现编码问题？如果出现怎么解决呢？<br>
        使用spring提供的 编码过滤器 完成编码过滤。需要我们手动在web.xml完成配置。
    </h4>
    <form action="/user/getParam1.do" method="post">
        <input type="input" name="id" >
        <input type="input" name="name" >
        <input type="submit" value="post提交">
    </form>
</fieldset>
<fieldset>
    <h4>能不能把请求的数据封装到一个bean中呢？
        <br/>可以，但是 我们的javabean中属性名与参数名要一致，才能封装进去。
    </h4>
    <a href="/user/getParam2.do?id=1&username=zhangsan">(参数想要被封装到pojo中)</a>
</fieldset>

<fieldset>
    <%--pojo 中有 pojo--%>
    <h4> 参数想要被封装到pojo中的pojo
       <br>先把数据封装到大的pojo，然后根据小的pojo的属性名 再继续.
    </h4>
    <form action="/user/getParam3.do" method="post">
        客户的id:<input type="input" name="id">
        客户的姓名:<input type="input" name="username" ><br/>
        客户开的车:<br/>
           品牌:<input type="input" name="car.band">
           价格:<input type="input" name="car.price">
        <input type="submit" value="将数据提交到服务器">
    </form>
</fieldset>

<fieldset>
    <%--参数为数组--%>
    <h4>参数是多值情况可以使用数组直接接收，参数名字要一致。</h4>
    <a href="/user/getParam4.do?args=抽烟&args=喝酒&args=烫头">(参数为数组))</a>
</fieldset>

<fieldset>
    <%--参数为list集合--%>
    <h4>参数是多值情况可以使用集合接收，但是需要使用@RequestParam()注解才能完成封装。</h4>
    <a href="/user/getParam5.do?args=篮球&args=足球&args=橄榄球">(参数为list集合))</a>
</fieldset>
<fieldset>
    <%--参数为Date--%>
    <h4>参数一个格式化日期字符串无法直接转换成date类型<br/>
      经验 400 错误 服务器无法理解你的请求，无语了...<br/>
        在接收参数这里使用@DateTimeFormat(pattern="yyyy-MM-dd")

    </h4>
    <a href="/user/getParam6.do?birthday=2021-04-12">((参数为Date))</a>
</fieldset>

<fieldset>
    <a href="/user/testServletApi.do?id=1&name=zhangsan">get请求(测试servletApi)</a>
</fieldset>
</body>
</html>